package com.zwy.Algorithm;
import java.util.*;

public class Main {
    private static int max;
    private static int count=0;
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);

        int count=0;
        int start=0;
        int n=scan.nextInt();
        int t=0;
        int []arr=new int[n];
        int min=Integer.MAX_VALUE;
        int mins=Integer.MAX_VALUE;
        for (int i = 0; i < n; i++) {
            arr[i]=scan.nextInt();
        }

        ArrayList<Integer> list1 = getLeastNumbers_SolutionII(arr, 2);
        int len=list1.size();

        if(list1.get(len-1).equals(list1.get(len-2))){
            System.out.println(list1.get(len-2));
        }
        else {
            System.out.println(list1.get(len-1));
        }

//        if(arr[arr.length-1]==arr[arr.length-2]){
//            System.out.println(arr[arr.length-1]);
//        }
//        else {
//            System.out.println(arr[arr.length-2]);
//        }
//       return;
    }



    public static ArrayList<Integer> getLeastNumbers_SolutionII(int [] input, int k) {
        ArrayList<Integer> ret = new ArrayList<>();
        if (input == null || k == 0) {
            return ret;
        }

        int len = input.length;

        if (len < k) {
            return ret;
        }

        // 快排思想，mid前面的数小于input[mid]
        int start = 0;
        int end = len-1;
        int mid = getMid(input, 0, len-1);

        // 目标索引,此处不能以k为目标索引，因为k可能等于数组的长度，以k为索引，数组越界
        int targetIdx = k - 1;

        while (mid != targetIdx) {
            // 目标值在mid左侧
            if (mid > targetIdx) {
                end = mid-1;
                // 目标值在mid右侧
            } else {
                start = mid+1;
            }
            mid = getMid(input, start, end);
        }

        for (int i=0; i<=targetIdx; i++) {
            ret.add(input[i]);
        }

        return ret;
    }

    // 以arr[begin]为参照，比该值小的放在左侧，比该值大的放在右侧，并返回arr[begin]的索引
    private static int getMid(int[] input, int begin, int end) {
        // 比较数为input[begin]
        int base = input[begin];

        // 左边数为参照，必须右起找第一个元素
        while (begin < end) {
            // 右起找第一个小于base的元素
            while (begin<end && input[end]>=base) {
                end--;
            }
            input[begin] = input[end];

            // 左起找第一个大于base的元素
            while (begin<end && input[begin]<=base) {
                begin++;
            }
            input[end] = input[begin];
        }

        input[begin] = base;

        return begin;
    }




}